package Day19;

public class Demo06 {
    public static void main(String[] args) {
        //线程：分为守护线程和用户线程
        //守护线程:守护用户线程，当最后一个用户线程结束时，守护线程自动死亡
        //用户线程：当一个线程不包含任何存活的用户线程时，进程结束
        //直接创建的线程叫用户线程
        Demo05.MyRunnable m = new Demo05.MyRunnable();
        Thread t1 = new Thread(m);//用户线程
        //守护线程需要在用户线程之前创建
        t1.setDaemon(true);
        t1.start();
        for (int i = 0; i < 5; i++) {
            System.out.println(Thread.currentThread().getName() + ":" +i);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        //t1.interrupt();//让线程中断  打个标记  打标机不意味着死亡而是需要自己定义
    }
    static class MyRunnable implements Runnable{
        @Override
        public void run() {
            for (int i = 0; i < 10; i++) {
                System.out.println(Thread.currentThread().getName() + ":" +i);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    //打标记之后在这里处理
                    System.out.println("发现中断标记");
                    return;//自杀
                }
            }
        }
    }
}
